import store from '@/store/index.js'
const bgm = uni.createInnerAudioContext();

	
var music = {
	info:{},//当前播放音乐的信息
	ifPlay:false,
	ifloop:true, //是否为单曲循环 true为是 false为列表循环
	currentTime:0, //当前音频播放事件进度 单位秒
	duration:null,//当前音频的总长度
	musicList:[],//需要播放的音乐列表
	//播放音乐
	play:function(){
		music.ifPlay=true
		bgm.src = this.info.url
		bgm.seek(this.currentTime)
		bgm.play()
		
	},
	//暂停音乐
	puase:function(){
		music.ifPlay=false
		bgm.pause()
	
	},
	//跳转到指定位置
	seek:function(position){
		bgm.seek(position)
	}

}


	
  bgm.onPlay(() => {
	 
				music.ifPlay=true
            console.log('开始播放音乐#######');
			
        })
  bgm.onPause(()=>{
			music.ifPlay=false
            console.log('暂停背景音乐');
			
        })
      bgm.onStop(()=>{
		  music.ifPlay=false
	  })
	  bgm.onEnded(()=>{
		  //播放结束后进度重置为0 并且判断是否是单曲循环 是就重复该单曲 不是就跳到列表下一首并且将该音乐基本信息同步到vuex中 如果已是最后则跳到第一首
		    music.currentTime=0
		  if(!music.ifloop){
			
			 var index=  music.musicList.findIndex((item)=>{
			 	  return item.id==music.info.id
			   })
			   if(music.musicList.length-1==index){
			 	  music.info=music.musicList[0]
			   }else{
			 	   music.info=music.musicList[index+1]
			   }
			   store.commit('setCurrentMusic',music.info)
		  }
		  bgm.play()
	  })
	  //监听音频播放进度更新
	  bgm.onTimeUpdate(()=>{
		music.currentTime=  bgm.currentTime
	  })
	  
	  bgm.onCanplay(()=>{
		  music.duration=bgm.duration
	  })
	bgm.onError((res) => {
            console.log(res)
        })
	
	
	bgm.loop = music.ifloop;


module.exports = music
